//request.js
import axios from "axios"
// 导入本地缓存的token
import store from '../store/index'
const instance = axios.create({
  //接口域名
  baseURL: 'http://big-event-vue-api-t.itheima.net',
  timeout: 5000, //表示请求超过时间

})

//请求拦截
instance.interceptors.request.use(
  function (config) {
    //第一种是获取store中的token
    let token = store.state.token
    //第二种是获取本地存储的token
    // let token = uni.getStorageSync('userInfo').accessToken
    //这里添加token验证,把本地的token传递给请求头，后续传递接口就可以直接调用
    if (token) {
      console.log(token)
      // 把token复制给请求头
      config.headers.Authorization = token
    }
    return config
  },
  function (error) {
    let token = store.state.token
    // 请求失败需要操作的，比如token失效返回登录页
    if (error.response.status === 401 || !token) {
      // 无效的 token
      // 把 Vuex 中的 token 重置为空，并跳转到登录页面
      store.commit('updateToken', '')
      router.push('/login')
    }
    return Promise.reject(error)
  }
)

//响应拦截
instance.interceptors.response.use(
  function (response) {
    return response.data
  },
  function (error) {
    return Promise.reject(error)
  }
)

//封装get请求 axios.get(url,{params:params})
export const get = (url, params) => instance.get(url, { params })
//封装post请求 axios.post(url,{name:'阿边',age:23})
export const post = (url, data) => instance.post(url, data)
//封装删除接口
export const del = (url, params) => instance.delete(url, { params })
//封装修改接口
export const put = (url, data) => instance.put(url, data)
//export default instance;
